## AVEQ - Arduino + VS1003 Exchange QR

Mad Radio Scientist VK2CJB is proud to announce the invention of a
mode more annoying than FT8!

This project allows an Arduino Uno, with a VS1003 audio module, to
generate slowscan television with QR encoded messages. It's been
noticed that an appropriate SSTV mode with a QR can be worked
in spite of voice readability

I'm sick of seeing them too.

I did this once..

![I am not proud that in the first week of hard lockdown I checked-in to a Net with a QR code like we had to do for the Supermarkets..](images/qr-checkin.jpg)

On the night that was sent, my path into that Net's repeater had
unreadable voice... but sending something in slowscan, with the
error-correction in QR, let everyone to know who (and where) it was.
In a sense, it turns SSTV into a weak-signal mode..

Regarding its legality on the bands -- the slowscan output from this
does not display a callsign in the clear image, only within the
content of the QR code. If you operate in a country that has Amateur
conditions saying callsigns must be in the clear image, you'll have to
pass on this. Australia's ACMA recently made QR Codes a recognized
labelling standard for telecommunications equipment, so there's no
doubt of its official recognizability in VK. It's encoding but not
encryption in any case-- but mileage may vary.

With the code flashed to the Arduino, connect to it with a Serial
terminal program, and you'll get a line interface...

>// AVEQ - Arduino + VS1003 Exchange QR    
>// Callsign: VK2CJB    
>// Mode: PD50    
>// Colours: 844,044    
>(7:1,3): _ VK2CJB    

The callsign, mode, and colours should be initalized before use. See
below.

Just type a message in and it'll start appearing where the \_ is.
There's no real input editing, with just backspace and enter
supported.

"7" is the current length of the message. The limit for 29x29 QR
matrixes (the current limit) is 53 bytes. (This alpha-release quality
code hasn't been throughly tested on this..)

"1,3" is the QR version/size and ECC level that'll be used. Smaller
QRs with larger pixels/modules and stronger FEC should help with weak
conditions. There needs to be experiments to see what works!

Your callsign will be appended to every message.

>\> Message: "I've invented a mode more annoying than FT8!!! VK2CJB"    
>\> 53 letters -- selecting size 29x29, ECC level 0    
>\> Continue (y/N)?    
>\> Generating QR    
>\> Transmitting

### SET Commands

All SET commands need to be entered in uppercase. Because I say so.
These settings are saved to EEPROM.

> SETMODE sstvmodename    
> SETMODE PD50    

Currently there's just the PD modes to choose from: PD50, PD90, PD120,
PD160, PD180, PD240, PD290.

PD50 works with everything during good conditions. PD90 and PD240 have
the best SNR.

(The B&W Robot 12 mode needs doing..)

> SETCALL callsign    
> SETCALL VK2CJB    
    
Max of 11 characters.

> SETCOLS \<lum_on\>\<cr_on\>\<cb_on\>\<lum_off\>\<cr_off\>\<cb_off\>    
> SETCOLS 844044

Brain-bending time. Provides what frequencies to use for the pixels...
in the YCbCr colourspace.

The digits 0-8 choose from 1500 to 2300Hz. White is "844", and black
is "044". The "4" for 1900 Hz, which is neutral to the Chromatic
difference components. Frob these for fun.

